package Month4;

import java.io.File;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class a20250424FileTest5
{
    static HashMap<String,Integer> map = new HashMap<>();

    public static void main(String[] args)
    {
        File src = new File("myfile");
        doCount(src);
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        entries.forEach(entry -> System.out.println(entry.getKey() + " " + entry.getValue()));


    }
    public static void doCount(File f)
    {
        File[] files = f.listFiles();
        for (File file : files)
        {
            if (file.isFile())//是文件 操作集合
            {
                String[] arr = file.getName().split("\\.");//正则表达式
                if(arr.length >=2)
                {
                    String endName = arr[arr.length -1];
                    if(map.containsKey(endName))//如果已经存在
                    {
                        int value = map.get(endName);//通过键找值
                        value++;//自增一个
                        map.put(endName,value);//重新塞回去
                    }
                    else//不存在 那么创建一个
                    {
                        map.put(endName,1);
                    }
                }
            }
            else//是文件夹 递归
            {
                doCount(file);
            }
        }
    }
    public static long getLen(File file)
    {
        long sum = 0;
        File[] files = file.listFiles();
        for (File temp : files)
        {
            if(files == null)
            {
                throw new NullPointerException();
            }
            if(temp.isFile())
            {
                sum += temp.length();
            }
            else{
                sum += getLen(temp);
            }
        }
        return sum;
    }
}
